import java.sql.*;

public class Main {
    public static void main(String[] args) throws SQLException {
        //数据库链接地址
        String JDBC_URL = "jdbc:mysql://localhost:3306/world";
        String JDBC_USER = "root";
        String JDBC_PASSWORD = "root";

        // try 后面 （） 中的对象，会在 try 结构执行结束后，自动释放内存
        // Connection 为数据库连接对象，管理数据库的连接的打开、关闭
        // DriverManager 类自动加载数据库驱动（在 pom.xml 文件中，不同数据库用不同驱动）
        // 根据我们提供数据库信息，创建数据库的连接对象
        try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) {
            // 通过连接对象创建执行对象 Statement 类对象 stmt
            try (Statement stmt = conn.createStatement()) {
                // 执行数据库操作，并将查到的数据存入内存的数据集对象中
                // 数据集 ResultSet 类 对象，可以理解为是内存中的虚拟数据库
                try (ResultSet rs = stmt.executeQuery("SELECT name, continent, lifeexpectancy FROM country")) {
                    //　通过循环，操作数据集指针，依次读取数据
                    while (rs.next()) {
                        // 通过 数据集对象的 getXXX(列索引号) ，可以将每个单元格中的数据读取出来
                        String name = rs.getString(1); // 注意：索引从1开始
                        String continent = rs.getString(2);
                        float lifeexpectancy = rs.getFloat("lifeexpectancy");
                        //int gender = rs.getInt(4);
                        System.out.println("国家 ："+ name +", 所属大洲： "+ continent + ", 平均寿命： "+ lifeexpectancy);
                    }
                }
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
